#ifndef MYMAP_H
#define MYMAP_H

#include <QGraphicsScene>
#include <QKeyEvent>
#include <QGraphicsPixmapItem>
#include <QGraphicsSceneMouseEvent>
#include <QDebug>
#include <QPainter>
#include <QGraphicsLineItem>
#include "qmath.h"
#include "mygview.h"

class MyMap : public QGraphicsScene
{
    Q_OBJECT
public:
     MyMap(QObject *parent = 0);
     virtual void dropEvent(QGraphicsSceneDragDropEvent *event);
     virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event);
     virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event);
     virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
     virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
     virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);

protected:
        //virtual void mousePressEvent(QGraphicsSceneMouseEvent * mouseEvent);

private:
        QGraphicsPixmapItem * map;
        QGraphicsLineItem *line;
        QPen *pen;
        QPoint *startline;
        QPoint *endline;

        /**
         * 1 - задание масштаба
         * 2 - измерение
         */
        int selectedTool;

        float scale; //сам масштаб
        float lineL; //длинна в пикселях

        bool newline;
public:
        void setMap(QPixmap);
        void refresh();//перерисовка линий
        void setScale(float);//устанавливаем масштаб
        void setScale(float,float);//устанавливаем масштаб
        float getScale();
        void clear_map();
        void setLine(QLineF *);
        bool isNullLine();
        void cancelAll(); //отмена всех изменений

        int getTool();
        void setTool(int);
        void lineMeasure_emit(); //функция, которая сама расчитывает всё и выпускает сигнал


public slots:
        void startLine( QPoint * );

signals:
        void lineScale(int);
        void lineMeasure(float);



};

#endif // MYMAP_H
